With parallel computers and the like, the performance of the system as a whole is potentially improved by multiply connecting nodes such as central processing units (CPUs). In a network used by a parallel computer having such multiple nodes, the multiple nodes are tied together by a switch. In some cases, a device such as a crossbar switch is used for such a switch.
Some crossbar switches are provided with buffered ports, while others are provided with unbuffered ports due to material constraints or the like. In the case of using a crossbar switch provided with unbuffered ports, a handshake is conducted to, for example, synchronize data between a port of the crossbar switch and the node or other transmission source that supplies data to that port. One example of a handshake method involves transmitting an arbitration request from the transmission source to the crossbar switch, while the crossbar switch, upon receiving the arbitration request, replies to the transmission source with a transmit authorization. After going through this sequence, the transmission source transmits a data packet to the crossbar switch. An alternative method involves authorizing data transmission to a port for limited time periods to the multiple nodes in order.
In the case of using arbitration requests, upon receiving arbitration requests for data from multiple nodes, the crossbar switch conducts an arbitration process that determines which node from which to accept an arbitration request. A particular node obtains transmit authorization from the port that selected that node, and transmits a data packet to that port. With such an arbitration process, it is possible to use a method in which a node that has obtained transmit authorization from a given port deletes arbitration requests output to other ports, for example. Alternatively, it is possible to use a method in which a node that has obtained transmit authorization with a given port continues to send arbitration requests output to other ports.
There has been disclosed related technology that suppresses dead cycles in a crossbar switch by creating a wait time to arbitration for each port, with an arbitration device conducting arbitration after standing by for the wait time (see Japanese Laid-open Patent Publication No. 11-73403, for example). Also disclosed is related technology that sets a length of data in a counter after transmitting a data transfer authorization signal, periodically decrements the counter, and conducts the next arbitration process when the counter reaches 0 (see Japanese Laid-open Patent Publication No. 2001-22711, for example).
However, with the techniques of the related art, if using a method that continues to send arbitration requests, there is a possibility that, when a given node (hereinafter designated the “specific node”) is selected by one port, another port may also conduct arbitration and select that specific node. In this case, the specific node receives transmit authorizations from the respective ports that selected the specific node, but the specific node transmits a data packet to the port from which transmit authorization was first received. Since the transmission of a data packet is conducted with respect to one port at a time, the specific node does not transmit a data packet to the other port that authorized transmission. During this time, the other port is already issuing transmit authorization to the specific node, and thus does not issue transmit authorization to another node. For this reason, even though there are other nodes able to transmit, the other port stands by until the specific node finishes transmitting a data packet.
Particularly, in order to conduct processing at high speed matching the ranking of output ports with high communication frequency and low communication frequency, it is conceivable to group and raise the priority of combinations of nodes and output ports with a high communication frequency. In this case, an output port grouped with a given node is prioritized for selection. Thus, when a node in a group is transmitting data to a paired output port, it is conceivable that the paired output port may be selected many times, even though another output port has sent transmit authorization to that node and is standing by. In this case, it is conceivable that the other output port will stand by until all data transmission to the paired output port is completed. As a result, there is a risk of the data transfer process hanging up.
Even the related technology that creates a wait time until arbitration for each port does not take into account the case of grouping combinations with high communication frequency, making it difficult to avoid grouped nodes and input/output ports monopolizing the bus. Even the related technology that sets a length of data in a counter and arbitrates on the basis of the counter does not take into account the case of grouping combinations with high communication frequency, making it difficult to avoid grouped nodes and input/output ports monopolizing the bus.